package business.services;

import java.util.Date;
import java.util.List;

import business.interfaces.ICalendarioReserva;
import business.interfaces.IReservaCancha;

public interface IServicioReservas {
	public void generarCalendarioReservasMensual(Boolean sobreescribirCalendarioExistente) throws ServiceException;
	
	public List<IReservaCancha> getReservas() throws ServiceException;
	
	public List<IReservaCancha> getReservas(Date fecha) throws ServiceException;
	
	public List<IReservaCancha> getReservas(Date fecha, Integer hora) throws ServiceException;
	
	public List<IReservaCancha> getReservas(Date fechaInicio, Date fechaFin) throws ServiceException;
	
	public IReservaCancha getReserva(String dni) throws ServiceException;
	
	public Boolean hayCanchasDisponibles(Date fecha, Integer hora) throws ServiceException;
	
	public Boolean hayCanchasDisponibles(Date fecha) throws ServiceException;
	
	public Boolean esCanchaDisponible(Integer numeroCancha, Date fecha, Integer hora) throws ServiceException;
	
	public List<ICalendarioReserva> getCanchasDisponibles(Date fecha, Integer hora) throws ServiceException;
	
	public List<ICalendarioReserva> getCanchasDisponibles(Date fecha) throws ServiceException;
	
	public ICalendarioReserva buscarMejorCanchaDisponible(Date fecha, Integer hora) throws ServiceException;
	
	public void reservarCancha(String dni, Date fecha, Integer hora, Double senia) throws ServiceException;
	
	public void reservarCancha(String dni, Date fecha, Integer hora, Integer numeroCancha, Double senia) throws ServiceException;
	
	public void cancelarReserva(String dni) throws ServiceException;
}
